﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using DTO;

namespace DAO
{
    public class KhuVucDAO
    {
        // Operation...
        public static bool ThemKhuVuc(KhuVucDTO kv)
        {
            bool ketqua = true;

            try
            {
                OleDbConnection ketnoi = ConnectionDAO.ketnoi;
                string chuoilenh = "Insert into KHUVUC( TenKhuVuc, SoLuongBan) Values( @TenKhuVuc, @SoLuongBan)";
                OleDbCommand lenh = new OleDbCommand(chuoilenh, ketnoi);
                OleDbParameter thamso;

                thamso = new OleDbParameter("@TenKhuVuc", OleDbType.VarChar);
                thamso.Value = kv.TenKhuVuc;
                lenh.Parameters.Add(thamso);

                thamso = new OleDbParameter("@SoLuongBan", OleDbType.Integer);
                thamso.Value = kv.SoLuongBan;
                lenh.Parameters.Add(thamso);

                lenh.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                ketqua = false;
            }

            return ketqua;
        }

        public static bool XoaKhuVuc(string tenKV)
        {
            bool ketqua = true;

            try
            {
                OleDbConnection ketnoi = ConnectionDAO.ketnoi;
                string chuoilenh = "Delete From KHUVUC Where TenKhuVuc = @TenKhuVuc";
                OleDbCommand lenh = new OleDbCommand(chuoilenh, ketnoi);
                OleDbParameter thamso = new OleDbParameter("@TenKhuVuc", OleDbType.VarChar);
                thamso.Value = tenKV;
                lenh.Parameters.Add(thamso);

                lenh.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                ketqua = false;
            }

            return ketqua;
        }

        public static bool SuaThongTinKV(KhuVucDTO kv)
        {
            bool ketqua = true;

            try
            {
                OleDbConnection ketnoi = ConnectionDAO.ketnoi;
                string chuoilenh = "Update KHUVUC Set TenKhuVuc = @TenKhuVuc, SoLuongBan = @SoLuongBan Where MaKhuVuc = @MaKhuVuc";
                OleDbCommand lenh = new OleDbCommand(chuoilenh, ketnoi);
                OleDbParameter thamso;

                thamso = new OleDbParameter("@TenKhuVuc", OleDbType.VarChar);
                thamso.Value = kv.TenKhuVuc;
                lenh.Parameters.Add(thamso);

                thamso = new OleDbParameter("@SoLuongBan", OleDbType.Integer);
                thamso.Value = kv.SoLuongBan;
                lenh.Parameters.Add(thamso);

                thamso = new OleDbParameter("@MaKhuVuc", OleDbType.VarChar);
                thamso.Value = kv.MaKhuVuc;
                lenh.Parameters.Add(thamso);

                lenh.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                ketqua = false;
            }

            return ketqua;
        }

        public static List<KhuVucDTO> LayDanhSachKhuVuc()
        {
            List<KhuVucDTO> dsKhuVuc = new List<KhuVucDTO>();

            try
            {
                OleDbConnection ketnoi = ConnectionDAO.ketnoi;
                string chuoilenh = "Select * From KHUVUC";
                OleDbCommand lenh = new OleDbCommand(chuoilenh, ketnoi);

                OleDbDataReader bodoc = lenh.ExecuteReader();

                while (bodoc.Read())
                {
                    KhuVucDTO khuvuc = new KhuVucDTO();
                    khuvuc.MaKhuVuc = bodoc.GetInt32(0);
                    if (!bodoc.IsDBNull(1))
                        khuvuc.TenKhuVuc = bodoc.GetString(1);
                    if (!bodoc.IsDBNull(2))
                        khuvuc.SoLuongBan = bodoc.GetInt16(2);

                    dsKhuVuc.Add(khuvuc);
                }
            }
            catch (Exception ex)
            {
                dsKhuVuc = new List<KhuVucDTO>();
            }

            return dsKhuVuc;
        }

        public static KhuVucDTO LayThongTinKhuVuc(string tenKV)
        {
            KhuVucDTO khuvuc = new KhuVucDTO();

            try
            {
                OleDbConnection ketnoi = ConnectionDAO.ketnoi;
                string chuoilenh = "Select * From KHUVUC Where TenKhuVuc = @TenKhuVuc";
                OleDbCommand lenh = new OleDbCommand(chuoilenh, ketnoi);
                OleDbParameter thamso = new OleDbParameter("@TenKhuVuc", OleDbType.VarChar);
                thamso.Value = tenKV;
                lenh.Parameters.Add(thamso);

                OleDbDataReader bodoc = lenh.ExecuteReader();

                while (bodoc.Read())
                {
                    khuvuc.MaKhuVuc = bodoc.GetInt32(0);
                    if (!bodoc.IsDBNull(1))
                        khuvuc.TenKhuVuc = bodoc.GetString(1);
                    if (!bodoc.IsDBNull(2))
                        khuvuc.SoLuongBan = bodoc.GetInt16(2);
                }
            }
            catch (Exception ex)
            {
                khuvuc = new KhuVucDTO();
            }

            return khuvuc;
        }
    }
}
